// $ANTLR 3.4 C:\\Users\\Jose\\workspace\\practica6\\src\\main\\java\\PL\\practica6\\AnalizadorXMLParser.g 2012-10-25 16:21:41
package PL.practica6;

import org.antlr.runtime.*;
import java.util.Stack;
import java.util.List;
import java.util.ArrayList;

@SuppressWarnings({"all", "warnings", "unchecked"})
public class AnalizadorXMLParser extends Parser {
    public static final String[] tokenNames = new String[] {
        "<invalid>", "<EOR>", "<DOWN>", "<UP>", "ABRIRANGULO", "ANGULOSLASH", "AUT", "BIBLIO", "BLANCO", "CERRARANGULO", "COMENTARIO", "DIGITO", "EDIT", "IGUAL", "LETRA", "LIB", "NUEVA_LINEA", "NUMERO", "OPERADOR", "PALABRA", "PARENTESIS", "SEPARADOR", "SIMBOLOS", "TIT", "VALOR"
    };

    public static final int EOF=-1;
    public static final int ABRIRANGULO=4;
    public static final int ANGULOSLASH=5;
    public static final int AUT=6;
    public static final int BIBLIO=7;
    public static final int BLANCO=8;
    public static final int CERRARANGULO=9;
    public static final int COMENTARIO=10;
    public static final int DIGITO=11;
    public static final int EDIT=12;
    public static final int IGUAL=13;
    public static final int LETRA=14;
    public static final int LIB=15;
    public static final int NUEVA_LINEA=16;
    public static final int NUMERO=17;
    public static final int OPERADOR=18;
    public static final int PALABRA=19;
    public static final int PARENTESIS=20;
    public static final int SEPARADOR=21;
    public static final int SIMBOLOS=22;
    public static final int TIT=23;
    public static final int VALOR=24;

    // delegates
    public Parser[] getDelegates() {
        return new Parser[] {};
    }

    // delegators


    public AnalizadorXMLParser(TokenStream input) {
        this(input, new RecognizerSharedState());
    }
    public AnalizadorXMLParser(TokenStream input, RecognizerSharedState state) {
        super(input, state);
    }

    public String[] getTokenNames() { return AnalizadorXMLParser.tokenNames; }
    public String getGrammarFileName() { return "C:\\Users\\Jose\\workspace\\practica6\\src\\main\\java\\PL\\practica6\\AnalizadorXMLParser.g"; }



    boolean flag = false;
    ArrayList <RecognitionException> errores = new ArrayList<RecognitionException>();

    public boolean listaVacia (){
        if (errores.isEmpty()){
          return true;
        }else
          return false;
    }

    public ArrayList getListaErrores(){return errores;}


    @Override
    public void reportError (RecognitionException e){
      System.out.println (getErrorMessage(e, getTokenNames()));
      errores.add(e);
    }




    // $ANTLR start "entrada"
    // C:\\Users\\Jose\\workspace\\practica6\\src\\main\\java\\PL\\practica6\\AnalizadorXMLParser.g:33:1: entrada : etiquetabiblio ;
    public final void entrada() throws RecognitionException {
        try {
            // C:\\Users\\Jose\\workspace\\practica6\\src\\main\\java\\PL\\practica6\\AnalizadorXMLParser.g:33:8: ( etiquetabiblio )
            // C:\\Users\\Jose\\workspace\\practica6\\src\\main\\java\\PL\\practica6\\AnalizadorXMLParser.g:33:10: etiquetabiblio
            {
            pushFollow(FOLLOW_etiquetabiblio_in_entrada45);
            etiquetabiblio();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "entrada"



    // $ANTLR start "etiquetabiblio"
    // C:\\Users\\Jose\\workspace\\practica6\\src\\main\\java\\PL\\practica6\\AnalizadorXMLParser.g:35:1: etiquetabiblio : biblioini dentroetiqueta ( etiquetalib )* bibliofin ;
    public final void etiquetabiblio() throws RecognitionException {
        try {
            // C:\\Users\\Jose\\workspace\\practica6\\src\\main\\java\\PL\\practica6\\AnalizadorXMLParser.g:35:16: ( biblioini dentroetiqueta ( etiquetalib )* bibliofin )
            // C:\\Users\\Jose\\workspace\\practica6\\src\\main\\java\\PL\\practica6\\AnalizadorXMLParser.g:35:18: biblioini dentroetiqueta ( etiquetalib )* bibliofin
            {
            pushFollow(FOLLOW_biblioini_in_etiquetabiblio53);
            biblioini();

            state._fsp--;


            pushFollow(FOLLOW_dentroetiqueta_in_etiquetabiblio55);
            dentroetiqueta();

            state._fsp--;


            // C:\\Users\\Jose\\workspace\\practica6\\src\\main\\java\\PL\\practica6\\AnalizadorXMLParser.g:35:43: ( etiquetalib )*
            loop1:
            do {
                int alt1=2;
                int LA1_0 = input.LA(1);

                if ( (LA1_0==ABRIRANGULO) ) {
                    alt1=1;
                }


                switch (alt1) {
            	case 1 :
            	    // C:\\Users\\Jose\\workspace\\practica6\\src\\main\\java\\PL\\practica6\\AnalizadorXMLParser.g:35:43: etiquetalib
            	    {
            	    pushFollow(FOLLOW_etiquetalib_in_etiquetabiblio57);
            	    etiquetalib();

            	    state._fsp--;


            	    }
            	    break;

            	default :
            	    break loop1;
                }
            } while (true);


            pushFollow(FOLLOW_bibliofin_in_etiquetabiblio61);
            bibliofin();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "etiquetabiblio"



    // $ANTLR start "etiquetalib"
    // C:\\Users\\Jose\\workspace\\practica6\\src\\main\\java\\PL\\practica6\\AnalizadorXMLParser.g:37:1: etiquetalib : libini etiquetatit etiquetaaut etiquetaedit libfin ;
    public final void etiquetalib() throws RecognitionException {
        try {
            // C:\\Users\\Jose\\workspace\\practica6\\src\\main\\java\\PL\\practica6\\AnalizadorXMLParser.g:37:13: ( libini etiquetatit etiquetaaut etiquetaedit libfin )
            // C:\\Users\\Jose\\workspace\\practica6\\src\\main\\java\\PL\\practica6\\AnalizadorXMLParser.g:37:15: libini etiquetatit etiquetaaut etiquetaedit libfin
            {
            pushFollow(FOLLOW_libini_in_etiquetalib69);
            libini();

            state._fsp--;


            pushFollow(FOLLOW_etiquetatit_in_etiquetalib71);
            etiquetatit();

            state._fsp--;


            pushFollow(FOLLOW_etiquetaaut_in_etiquetalib73);
            etiquetaaut();

            state._fsp--;


            pushFollow(FOLLOW_etiquetaedit_in_etiquetalib75);
            etiquetaedit();

            state._fsp--;


            pushFollow(FOLLOW_libfin_in_etiquetalib77);
            libfin();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "etiquetalib"



    // $ANTLR start "etiquetatit"
    // C:\\Users\\Jose\\workspace\\practica6\\src\\main\\java\\PL\\practica6\\AnalizadorXMLParser.g:38:1: etiquetatit : titini dentroetiqueta titfin ;
    public final void etiquetatit() throws RecognitionException {
        try {
            // C:\\Users\\Jose\\workspace\\practica6\\src\\main\\java\\PL\\practica6\\AnalizadorXMLParser.g:38:13: ( titini dentroetiqueta titfin )
            // C:\\Users\\Jose\\workspace\\practica6\\src\\main\\java\\PL\\practica6\\AnalizadorXMLParser.g:38:15: titini dentroetiqueta titfin
            {
            pushFollow(FOLLOW_titini_in_etiquetatit84);
            titini();

            state._fsp--;


            pushFollow(FOLLOW_dentroetiqueta_in_etiquetatit86);
            dentroetiqueta();

            state._fsp--;


            pushFollow(FOLLOW_titfin_in_etiquetatit88);
            titfin();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "etiquetatit"



    // $ANTLR start "etiquetaaut"
    // C:\\Users\\Jose\\workspace\\practica6\\src\\main\\java\\PL\\practica6\\AnalizadorXMLParser.g:39:1: etiquetaaut : autini dentroetiqueta autfin ;
    public final void etiquetaaut() throws RecognitionException {
        try {
            // C:\\Users\\Jose\\workspace\\practica6\\src\\main\\java\\PL\\practica6\\AnalizadorXMLParser.g:39:13: ( autini dentroetiqueta autfin )
            // C:\\Users\\Jose\\workspace\\practica6\\src\\main\\java\\PL\\practica6\\AnalizadorXMLParser.g:39:15: autini dentroetiqueta autfin
            {
            pushFollow(FOLLOW_autini_in_etiquetaaut95);
            autini();

            state._fsp--;


            pushFollow(FOLLOW_dentroetiqueta_in_etiquetaaut97);
            dentroetiqueta();

            state._fsp--;


            pushFollow(FOLLOW_autfin_in_etiquetaaut99);
            autfin();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "etiquetaaut"



    // $ANTLR start "etiquetaedit"
    // C:\\Users\\Jose\\workspace\\practica6\\src\\main\\java\\PL\\practica6\\AnalizadorXMLParser.g:40:1: etiquetaedit : editini dentroetiqueta editfin ;
    public final void etiquetaedit() throws RecognitionException {
        try {
            // C:\\Users\\Jose\\workspace\\practica6\\src\\main\\java\\PL\\practica6\\AnalizadorXMLParser.g:40:14: ( editini dentroetiqueta editfin )
            // C:\\Users\\Jose\\workspace\\practica6\\src\\main\\java\\PL\\practica6\\AnalizadorXMLParser.g:40:16: editini dentroetiqueta editfin
            {
            pushFollow(FOLLOW_editini_in_etiquetaedit106);
            editini();

            state._fsp--;


            pushFollow(FOLLOW_dentroetiqueta_in_etiquetaedit108);
            dentroetiqueta();

            state._fsp--;


            pushFollow(FOLLOW_editfin_in_etiquetaedit110);
            editfin();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "etiquetaedit"



    // $ANTLR start "dentroetiqueta"
    // C:\\Users\\Jose\\workspace\\practica6\\src\\main\\java\\PL\\practica6\\AnalizadorXMLParser.g:42:1: dentroetiqueta : ( PALABRA | SIMBOLOS )* ;
    public final void dentroetiqueta() throws RecognitionException {
        try {
            // C:\\Users\\Jose\\workspace\\practica6\\src\\main\\java\\PL\\practica6\\AnalizadorXMLParser.g:42:16: ( ( PALABRA | SIMBOLOS )* )
            // C:\\Users\\Jose\\workspace\\practica6\\src\\main\\java\\PL\\practica6\\AnalizadorXMLParser.g:42:18: ( PALABRA | SIMBOLOS )*
            {
            // C:\\Users\\Jose\\workspace\\practica6\\src\\main\\java\\PL\\practica6\\AnalizadorXMLParser.g:42:18: ( PALABRA | SIMBOLOS )*
            loop2:
            do {
                int alt2=2;
                int LA2_0 = input.LA(1);

                if ( (LA2_0==PALABRA||LA2_0==SIMBOLOS) ) {
                    alt2=1;
                }


                switch (alt2) {
            	case 1 :
            	    // C:\\Users\\Jose\\workspace\\practica6\\src\\main\\java\\PL\\practica6\\AnalizadorXMLParser.g:
            	    {
            	    if ( input.LA(1)==PALABRA||input.LA(1)==SIMBOLOS ) {
            	        input.consume();
            	        state.errorRecovery=false;
            	    }
            	    else {
            	        MismatchedSetException mse = new MismatchedSetException(null,input);
            	        throw mse;
            	    }


            	    }
            	    break;

            	default :
            	    break loop2;
                }
            } while (true);


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "dentroetiqueta"



    // $ANTLR start "biblioini"
    // C:\\Users\\Jose\\workspace\\practica6\\src\\main\\java\\PL\\practica6\\AnalizadorXMLParser.g:44:3: biblioini : ABRIRANGULO BIBLIO atributo CERRARANGULO ;
    public final void biblioini() throws RecognitionException {
        try {
            // C:\\Users\\Jose\\workspace\\practica6\\src\\main\\java\\PL\\practica6\\AnalizadorXMLParser.g:44:12: ( ABRIRANGULO BIBLIO atributo CERRARANGULO )
            // C:\\Users\\Jose\\workspace\\practica6\\src\\main\\java\\PL\\practica6\\AnalizadorXMLParser.g:44:14: ABRIRANGULO BIBLIO atributo CERRARANGULO
            {
            flag= true;

            match(input,ABRIRANGULO,FOLLOW_ABRIRANGULO_in_biblioini136); 

            match(input,BIBLIO,FOLLOW_BIBLIO_in_biblioini139); 

            pushFollow(FOLLOW_atributo_in_biblioini141);
            atributo();

            state._fsp--;


            match(input,CERRARANGULO,FOLLOW_CERRARANGULO_in_biblioini143); 

            flag= false;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "biblioini"



    // $ANTLR start "bibliofin"
    // C:\\Users\\Jose\\workspace\\practica6\\src\\main\\java\\PL\\practica6\\AnalizadorXMLParser.g:45:3: bibliofin : ANGULOSLASH BIBLIO CERRARANGULO ;
    public final void bibliofin() throws RecognitionException {
        try {
            // C:\\Users\\Jose\\workspace\\practica6\\src\\main\\java\\PL\\practica6\\AnalizadorXMLParser.g:45:12: ( ANGULOSLASH BIBLIO CERRARANGULO )
            // C:\\Users\\Jose\\workspace\\practica6\\src\\main\\java\\PL\\practica6\\AnalizadorXMLParser.g:45:14: ANGULOSLASH BIBLIO CERRARANGULO
            {
            match(input,ANGULOSLASH,FOLLOW_ANGULOSLASH_in_bibliofin153); 

            match(input,BIBLIO,FOLLOW_BIBLIO_in_bibliofin155); 

            match(input,CERRARANGULO,FOLLOW_CERRARANGULO_in_bibliofin158); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "bibliofin"



    // $ANTLR start "libini"
    // C:\\Users\\Jose\\workspace\\practica6\\src\\main\\java\\PL\\practica6\\AnalizadorXMLParser.g:46:3: libini : ABRIRANGULO LIB ( atributo )? CERRARANGULO ;
    public final void libini() throws RecognitionException {
        try {
            // C:\\Users\\Jose\\workspace\\practica6\\src\\main\\java\\PL\\practica6\\AnalizadorXMLParser.g:46:9: ( ABRIRANGULO LIB ( atributo )? CERRARANGULO )
            // C:\\Users\\Jose\\workspace\\practica6\\src\\main\\java\\PL\\practica6\\AnalizadorXMLParser.g:46:11: ABRIRANGULO LIB ( atributo )? CERRARANGULO
            {
            flag = true;

            match(input,ABRIRANGULO,FOLLOW_ABRIRANGULO_in_libini168); 

            match(input,LIB,FOLLOW_LIB_in_libini170); 

            // C:\\Users\\Jose\\workspace\\practica6\\src\\main\\java\\PL\\practica6\\AnalizadorXMLParser.g:46:43: ( atributo )?
            int alt3=2;
            int LA3_0 = input.LA(1);

            if ( (LA3_0==PALABRA) ) {
                alt3=1;
            }
            switch (alt3) {
                case 1 :
                    // C:\\Users\\Jose\\workspace\\practica6\\src\\main\\java\\PL\\practica6\\AnalizadorXMLParser.g:46:43: atributo
                    {
                    pushFollow(FOLLOW_atributo_in_libini173);
                    atributo();

                    state._fsp--;


                    }
                    break;

            }


            match(input,CERRARANGULO,FOLLOW_CERRARANGULO_in_libini177); 

            flag= false;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "libini"



    // $ANTLR start "libfin"
    // C:\\Users\\Jose\\workspace\\practica6\\src\\main\\java\\PL\\practica6\\AnalizadorXMLParser.g:47:3: libfin : ANGULOSLASH LIB CERRARANGULO ;
    public final void libfin() throws RecognitionException {
        try {
            // C:\\Users\\Jose\\workspace\\practica6\\src\\main\\java\\PL\\practica6\\AnalizadorXMLParser.g:47:9: ( ANGULOSLASH LIB CERRARANGULO )
            // C:\\Users\\Jose\\workspace\\practica6\\src\\main\\java\\PL\\practica6\\AnalizadorXMLParser.g:47:11: ANGULOSLASH LIB CERRARANGULO
            {
            match(input,ANGULOSLASH,FOLLOW_ANGULOSLASH_in_libfin187); 

            match(input,LIB,FOLLOW_LIB_in_libfin189); 

            match(input,CERRARANGULO,FOLLOW_CERRARANGULO_in_libfin192); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "libfin"



    // $ANTLR start "titini"
    // C:\\Users\\Jose\\workspace\\practica6\\src\\main\\java\\PL\\practica6\\AnalizadorXMLParser.g:48:3: titini : ABRIRANGULO TIT ( atributo )? CERRARANGULO ;
    public final void titini() throws RecognitionException {
        try {
            // C:\\Users\\Jose\\workspace\\practica6\\src\\main\\java\\PL\\practica6\\AnalizadorXMLParser.g:48:9: ( ABRIRANGULO TIT ( atributo )? CERRARANGULO )
            // C:\\Users\\Jose\\workspace\\practica6\\src\\main\\java\\PL\\practica6\\AnalizadorXMLParser.g:48:10: ABRIRANGULO TIT ( atributo )? CERRARANGULO
            {
            flag = true;

            match(input,ABRIRANGULO,FOLLOW_ABRIRANGULO_in_titini201); 

            match(input,TIT,FOLLOW_TIT_in_titini203); 

            // C:\\Users\\Jose\\workspace\\practica6\\src\\main\\java\\PL\\practica6\\AnalizadorXMLParser.g:48:41: ( atributo )?
            int alt4=2;
            int LA4_0 = input.LA(1);

            if ( (LA4_0==PALABRA) ) {
                alt4=1;
            }
            switch (alt4) {
                case 1 :
                    // C:\\Users\\Jose\\workspace\\practica6\\src\\main\\java\\PL\\practica6\\AnalizadorXMLParser.g:48:41: atributo
                    {
                    pushFollow(FOLLOW_atributo_in_titini205);
                    atributo();

                    state._fsp--;


                    }
                    break;

            }


            match(input,CERRARANGULO,FOLLOW_CERRARANGULO_in_titini208); 

            flag= false;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "titini"



    // $ANTLR start "titfin"
    // C:\\Users\\Jose\\workspace\\practica6\\src\\main\\java\\PL\\practica6\\AnalizadorXMLParser.g:49:3: titfin : ANGULOSLASH TIT CERRARANGULO ;
    public final void titfin() throws RecognitionException {
        try {
            // C:\\Users\\Jose\\workspace\\practica6\\src\\main\\java\\PL\\practica6\\AnalizadorXMLParser.g:49:9: ( ANGULOSLASH TIT CERRARANGULO )
            // C:\\Users\\Jose\\workspace\\practica6\\src\\main\\java\\PL\\practica6\\AnalizadorXMLParser.g:49:11: ANGULOSLASH TIT CERRARANGULO
            {
            match(input,ANGULOSLASH,FOLLOW_ANGULOSLASH_in_titfin218); 

            match(input,TIT,FOLLOW_TIT_in_titfin220); 

            match(input,CERRARANGULO,FOLLOW_CERRARANGULO_in_titfin223); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "titfin"



    // $ANTLR start "autini"
    // C:\\Users\\Jose\\workspace\\practica6\\src\\main\\java\\PL\\practica6\\AnalizadorXMLParser.g:50:3: autini : ABRIRANGULO AUT ( atributo )? CERRARANGULO ;
    public final void autini() throws RecognitionException {
        try {
            // C:\\Users\\Jose\\workspace\\practica6\\src\\main\\java\\PL\\practica6\\AnalizadorXMLParser.g:50:9: ( ABRIRANGULO AUT ( atributo )? CERRARANGULO )
            // C:\\Users\\Jose\\workspace\\practica6\\src\\main\\java\\PL\\practica6\\AnalizadorXMLParser.g:50:11: ABRIRANGULO AUT ( atributo )? CERRARANGULO
            {
            flag = true;

            match(input,ABRIRANGULO,FOLLOW_ABRIRANGULO_in_autini232); 

            match(input,AUT,FOLLOW_AUT_in_autini234); 

            // C:\\Users\\Jose\\workspace\\practica6\\src\\main\\java\\PL\\practica6\\AnalizadorXMLParser.g:50:41: ( atributo )?
            int alt5=2;
            int LA5_0 = input.LA(1);

            if ( (LA5_0==PALABRA) ) {
                alt5=1;
            }
            switch (alt5) {
                case 1 :
                    // C:\\Users\\Jose\\workspace\\practica6\\src\\main\\java\\PL\\practica6\\AnalizadorXMLParser.g:50:41: atributo
                    {
                    pushFollow(FOLLOW_atributo_in_autini236);
                    atributo();

                    state._fsp--;


                    }
                    break;

            }


            match(input,CERRARANGULO,FOLLOW_CERRARANGULO_in_autini240); 

            flag= false;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "autini"



    // $ANTLR start "autfin"
    // C:\\Users\\Jose\\workspace\\practica6\\src\\main\\java\\PL\\practica6\\AnalizadorXMLParser.g:51:3: autfin : ANGULOSLASH AUT CERRARANGULO ;
    public final void autfin() throws RecognitionException {
        try {
            // C:\\Users\\Jose\\workspace\\practica6\\src\\main\\java\\PL\\practica6\\AnalizadorXMLParser.g:51:9: ( ANGULOSLASH AUT CERRARANGULO )
            // C:\\Users\\Jose\\workspace\\practica6\\src\\main\\java\\PL\\practica6\\AnalizadorXMLParser.g:51:11: ANGULOSLASH AUT CERRARANGULO
            {
            match(input,ANGULOSLASH,FOLLOW_ANGULOSLASH_in_autfin250); 

            match(input,AUT,FOLLOW_AUT_in_autfin252); 

            match(input,CERRARANGULO,FOLLOW_CERRARANGULO_in_autfin255); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "autfin"



    // $ANTLR start "editini"
    // C:\\Users\\Jose\\workspace\\practica6\\src\\main\\java\\PL\\practica6\\AnalizadorXMLParser.g:52:3: editini : ABRIRANGULO EDIT ( atributo )? CERRARANGULO ;
    public final void editini() throws RecognitionException {
        try {
            // C:\\Users\\Jose\\workspace\\practica6\\src\\main\\java\\PL\\practica6\\AnalizadorXMLParser.g:52:10: ( ABRIRANGULO EDIT ( atributo )? CERRARANGULO )
            // C:\\Users\\Jose\\workspace\\practica6\\src\\main\\java\\PL\\practica6\\AnalizadorXMLParser.g:52:11: ABRIRANGULO EDIT ( atributo )? CERRARANGULO
            {
            flag = true;

            match(input,ABRIRANGULO,FOLLOW_ABRIRANGULO_in_editini264); 

            match(input,EDIT,FOLLOW_EDIT_in_editini266); 

            // C:\\Users\\Jose\\workspace\\practica6\\src\\main\\java\\PL\\practica6\\AnalizadorXMLParser.g:52:43: ( atributo )?
            int alt6=2;
            int LA6_0 = input.LA(1);

            if ( (LA6_0==PALABRA) ) {
                alt6=1;
            }
            switch (alt6) {
                case 1 :
                    // C:\\Users\\Jose\\workspace\\practica6\\src\\main\\java\\PL\\practica6\\AnalizadorXMLParser.g:52:43: atributo
                    {
                    pushFollow(FOLLOW_atributo_in_editini268);
                    atributo();

                    state._fsp--;


                    }
                    break;

            }


            match(input,CERRARANGULO,FOLLOW_CERRARANGULO_in_editini272); 

            flag= false;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "editini"



    // $ANTLR start "editfin"
    // C:\\Users\\Jose\\workspace\\practica6\\src\\main\\java\\PL\\practica6\\AnalizadorXMLParser.g:53:3: editfin : ANGULOSLASH EDIT CERRARANGULO ;
    public final void editfin() throws RecognitionException {
        try {
            // C:\\Users\\Jose\\workspace\\practica6\\src\\main\\java\\PL\\practica6\\AnalizadorXMLParser.g:53:10: ( ANGULOSLASH EDIT CERRARANGULO )
            // C:\\Users\\Jose\\workspace\\practica6\\src\\main\\java\\PL\\practica6\\AnalizadorXMLParser.g:53:12: ANGULOSLASH EDIT CERRARANGULO
            {
            match(input,ANGULOSLASH,FOLLOW_ANGULOSLASH_in_editfin282); 

            match(input,EDIT,FOLLOW_EDIT_in_editfin284); 

            match(input,CERRARANGULO,FOLLOW_CERRARANGULO_in_editfin286); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "editfin"



    // $ANTLR start "atributo"
    // C:\\Users\\Jose\\workspace\\practica6\\src\\main\\java\\PL\\practica6\\AnalizadorXMLParser.g:54:3: atributo :{...}? PALABRA IGUAL VALOR ;
    public final void atributo() throws RecognitionException {
        try {
            // C:\\Users\\Jose\\workspace\\practica6\\src\\main\\java\\PL\\practica6\\AnalizadorXMLParser.g:54:12: ({...}? PALABRA IGUAL VALOR )
            // C:\\Users\\Jose\\workspace\\practica6\\src\\main\\java\\PL\\practica6\\AnalizadorXMLParser.g:54:14: {...}? PALABRA IGUAL VALOR
            {
            if ( !((flag)) ) {
                throw new FailedPredicateException(input, "atributo", "flag");
            }

            match(input,PALABRA,FOLLOW_PALABRA_in_atributo297); 

            match(input,IGUAL,FOLLOW_IGUAL_in_atributo299); 

            match(input,VALOR,FOLLOW_VALOR_in_atributo301); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "atributo"

    // Delegated rules


 

    public static final BitSet FOLLOW_etiquetabiblio_in_entrada45 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_biblioini_in_etiquetabiblio53 = new BitSet(new long[]{0x0000000000480030L});
    public static final BitSet FOLLOW_dentroetiqueta_in_etiquetabiblio55 = new BitSet(new long[]{0x0000000000000030L});
    public static final BitSet FOLLOW_etiquetalib_in_etiquetabiblio57 = new BitSet(new long[]{0x0000000000000030L});
    public static final BitSet FOLLOW_bibliofin_in_etiquetabiblio61 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_libini_in_etiquetalib69 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_etiquetatit_in_etiquetalib71 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_etiquetaaut_in_etiquetalib73 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_etiquetaedit_in_etiquetalib75 = new BitSet(new long[]{0x0000000000000020L});
    public static final BitSet FOLLOW_libfin_in_etiquetalib77 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_titini_in_etiquetatit84 = new BitSet(new long[]{0x0000000000480020L});
    public static final BitSet FOLLOW_dentroetiqueta_in_etiquetatit86 = new BitSet(new long[]{0x0000000000000020L});
    public static final BitSet FOLLOW_titfin_in_etiquetatit88 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_autini_in_etiquetaaut95 = new BitSet(new long[]{0x0000000000480020L});
    public static final BitSet FOLLOW_dentroetiqueta_in_etiquetaaut97 = new BitSet(new long[]{0x0000000000000020L});
    public static final BitSet FOLLOW_autfin_in_etiquetaaut99 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_editini_in_etiquetaedit106 = new BitSet(new long[]{0x0000000000480020L});
    public static final BitSet FOLLOW_dentroetiqueta_in_etiquetaedit108 = new BitSet(new long[]{0x0000000000000020L});
    public static final BitSet FOLLOW_editfin_in_etiquetaedit110 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ABRIRANGULO_in_biblioini136 = new BitSet(new long[]{0x0000000000000080L});
    public static final BitSet FOLLOW_BIBLIO_in_biblioini139 = new BitSet(new long[]{0x0000000000080000L});
    public static final BitSet FOLLOW_atributo_in_biblioini141 = new BitSet(new long[]{0x0000000000000200L});
    public static final BitSet FOLLOW_CERRARANGULO_in_biblioini143 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ANGULOSLASH_in_bibliofin153 = new BitSet(new long[]{0x0000000000000080L});
    public static final BitSet FOLLOW_BIBLIO_in_bibliofin155 = new BitSet(new long[]{0x0000000000000200L});
    public static final BitSet FOLLOW_CERRARANGULO_in_bibliofin158 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ABRIRANGULO_in_libini168 = new BitSet(new long[]{0x0000000000008000L});
    public static final BitSet FOLLOW_LIB_in_libini170 = new BitSet(new long[]{0x0000000000080200L});
    public static final BitSet FOLLOW_atributo_in_libini173 = new BitSet(new long[]{0x0000000000000200L});
    public static final BitSet FOLLOW_CERRARANGULO_in_libini177 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ANGULOSLASH_in_libfin187 = new BitSet(new long[]{0x0000000000008000L});
    public static final BitSet FOLLOW_LIB_in_libfin189 = new BitSet(new long[]{0x0000000000000200L});
    public static final BitSet FOLLOW_CERRARANGULO_in_libfin192 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ABRIRANGULO_in_titini201 = new BitSet(new long[]{0x0000000000800000L});
    public static final BitSet FOLLOW_TIT_in_titini203 = new BitSet(new long[]{0x0000000000080200L});
    public static final BitSet FOLLOW_atributo_in_titini205 = new BitSet(new long[]{0x0000000000000200L});
    public static final BitSet FOLLOW_CERRARANGULO_in_titini208 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ANGULOSLASH_in_titfin218 = new BitSet(new long[]{0x0000000000800000L});
    public static final BitSet FOLLOW_TIT_in_titfin220 = new BitSet(new long[]{0x0000000000000200L});
    public static final BitSet FOLLOW_CERRARANGULO_in_titfin223 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ABRIRANGULO_in_autini232 = new BitSet(new long[]{0x0000000000000040L});
    public static final BitSet FOLLOW_AUT_in_autini234 = new BitSet(new long[]{0x0000000000080200L});
    public static final BitSet FOLLOW_atributo_in_autini236 = new BitSet(new long[]{0x0000000000000200L});
    public static final BitSet FOLLOW_CERRARANGULO_in_autini240 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ANGULOSLASH_in_autfin250 = new BitSet(new long[]{0x0000000000000040L});
    public static final BitSet FOLLOW_AUT_in_autfin252 = new BitSet(new long[]{0x0000000000000200L});
    public static final BitSet FOLLOW_CERRARANGULO_in_autfin255 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ABRIRANGULO_in_editini264 = new BitSet(new long[]{0x0000000000001000L});
    public static final BitSet FOLLOW_EDIT_in_editini266 = new BitSet(new long[]{0x0000000000080200L});
    public static final BitSet FOLLOW_atributo_in_editini268 = new BitSet(new long[]{0x0000000000000200L});
    public static final BitSet FOLLOW_CERRARANGULO_in_editini272 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ANGULOSLASH_in_editfin282 = new BitSet(new long[]{0x0000000000001000L});
    public static final BitSet FOLLOW_EDIT_in_editfin284 = new BitSet(new long[]{0x0000000000000200L});
    public static final BitSet FOLLOW_CERRARANGULO_in_editfin286 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_PALABRA_in_atributo297 = new BitSet(new long[]{0x0000000000002000L});
    public static final BitSet FOLLOW_IGUAL_in_atributo299 = new BitSet(new long[]{0x0000000001000000L});
    public static final BitSet FOLLOW_VALOR_in_atributo301 = new BitSet(new long[]{0x0000000000000002L});

}